NexusPi Git Node
Commit 4db65df33e12b89ecf6f438fbc7778a844faf58b
Parents : 5229ac2
Author : James L <jrl290@gmail.com>
Date : 2026-07-21T22:44:56-04:00
v1.0.45: Path request forwarding on broadcast interfaces (LoRa), WL seeding fix
- Path requests from non-backbone interfaces now forward on ALL interfaces
including the arrival interface (needed for single-interface LoRa relay)
- Same-interface exclusion kept for backbone (point-to-point, echo is noise)
- Loop prevention via _discovery_path_requests / _discovery_pr_tags dedup
- This breaks the deadlock where a LoRa-only node couldn't forward a path
request for an unknown destination, preventing WL seeding and announce
propagation through the firewall
Changes
3 files changed, 25 insertions(+), 13 deletions(-)
Diff
diff --git a/Config.h b/Config.h
index 5257b85..c68e5a8 100755
--- a/Config.h
+++ b/Config.h
@@ -20,8 +20,8 @@
#define CONFIG_H
#define MAJ_VERS 0x01
- #define MIN_VERS 0x2C
- #define FW_RELEASE_TAG "1.0.44"
+ #define MIN_VERS 0x2D
+ #define FW_RELEASE_TAG "1.0.45"
#define MODE_HOST 0x11
#define MODE_TNC 0x12
diff --git a/lib/microReticulum/src/Transport.cpp b/lib/microReticulum/src/Transport.cpp
index 949206d..3ed254b 100755
--- a/lib/microReticulum/src/Transport.cpp
+++ b/lib/microReticulum/src/Transport.cpp
@@ -3654,8 +3654,13 @@ will announce it.
DEBUG("There is already a waiting path request for destination " + destination_hash.toHex() + " on behalf of path request" + interface_str);
}
else {
- // Forward path request on all interfaces
- // except the requestor interface
+ // Forward path request on all interfaces.
+ // Only skip same-interface forwarding for point-to-point
+ // interfaces (backbone) — echoing back to the sender on a
+ // point-to-point link is just noise. Broadcast interfaces
+ // (LoRa) reach different nodes when retransmitted, and any
+ // echo is already caught by _discovery_path_requests /
+ // _discovery_pr_tags dedup.
DEBUG("Attempting to discover unknown path to destination " + destination_hash.toHex() + " on behalf of path request" + interface_str);
#if defined(FIREWALL_MODE)
@@ -3671,18 +3676,12 @@ will announce it.
#elif defined(INTERFACES_MAP)
for (auto& [hash, interface] : _interfaces) {
#endif
- // Only forward path requests to interfaces other than
- // the one they arrived on — prevents WAN path requests
- // from flooding the LoRa channel.
- if (interface != attached_interface) {
+ if (interface == attached_interface && interface.is_backbone()) {
+ TRACE("Transport::path_request: not requesting path back to sender on backbone " + interface.toString());
+ } else {
TRACE("Transport::path_request: requesting path on interface " + interface.toString());
- // Use the previously extracted tag from this path request
- // on the new path requests as well, to avoid potential loops
request_path(destination_hash, interface, tag, true);
}
- else {
- TRACE("Transport::path_request: not requesting path on same interface " + interface.toString());
- }
}
}
}
diff --git a/versions.json b/versions.json
index 48c98ff..f68274d 100644
--- a/versions.json
+++ b/versions.json
@@ -1,4 +1,17 @@
[
+ {
+ "tag": "v1.0.45",
+ "name": "v1.0.45 \u2014 Path request forwarding on broadcast interfaces, WL seeding fix",
+ "stability": "beta",
+ "prerelease": false,
+ "published_at": "2026-07-21T00:00:00Z",
+ "assets": [
+ "rtnode_heltec_v3.bin",
+ "rtnode_heltec_v3_merged.bin",
+ "rtnode_heltec_v4.bin",
+ "rtnode_heltec_v4_merged.bin"
+ ]
+ },
{
"tag": "v1.0.44",
"name": "v1.0.44 \u2014 Backbone hop-count fix, LoRa receive path parity",
Served by rngit 1.5.0 - Generated in 0.02s